table.insert(itemActions,
	function(item, action)
		-- MAGIC shields
		-- see: dir .. "readme.txt" for information regarding these variables
		local priority = 5
		local identify = true
		local dump = true

		if not (item.quality == ItemQuality.Magic and (item.baseItem.code == "uit" or
				item.baseItem.baseType.Type == ItemKind.AuricShields)) then
			return false
		elseif action == aPICK and (not item.flags.Identified or
				isGoodMagicMonarch(item) or isGoodMagicAuricShield(item)) then
			return priority
		elseif action == aIDENT then
			return identify
		elseif action == aSELL and item.flags.Identified and not (
				isGoodMagicMonarch(item) or isGoodMagicAuricShield(item)) then
			return true
		elseif action == aDUMP and item.flags.Identified and not (
				isGoodMagicMonarch(item) or isGoodMagicAuricShield(item)) then
			return dump
		end

		return false
	end
)


function isGoodMagicMonarch(item)
	if item.baseItem.code ~= "uit" then
		return false
	end
	
	if findStat(item, "Sockets") == 4 and item.suffix.Index ~= 0 then  -- Potential JMOD
		return true
	end
end

function isGoodMagicAuricShield(item)
	if item.baseItem.baseType.Type ~= ItemKind.AuricShields then
		return false
	end
	
	if findStat(item, "Sockets") == 4 and hasRes(item, 20, 4) and item.suffix.Index ~= 0 then
		return true
	end
end